package com.ayz.gateway.core.rpc;

import java.util.concurrent.CompletableFuture;

/**
 * @ClassName IGatewayApi
 * @Description TODO:用户通过Http请求访问网关的API
 *                   网关API接口发起RPC范化调用
 * @Author 快乐的星球
 * @Date 2023/5/6 19:45
 * @Version 1.0
 **/
public interface IGatewayApi {
    /**
     * 同步调用
     * @param args 参数数组
     * @param parameterTypeNames 参数名称数组
     * @return
     */
    Object callSync(Object[] args, String[] parameterTypeNames);

    /**
     * 异步调用
     * @param args
     * @param parameterTypeNames
     * @return 返回的是RPC框架异步调用后的异步CompletableFuture任务
     */
    CompletableFuture<Object> callAsync(Object[] args, String[] parameterTypeNames);
}
